As a method for demodulating a received signal, attention has been paid to Joint Detection (hereinafter referred to as “JD”) that is used. JD is a demodulation method for removing various types of interference such as interference between symbols, interference between codes due to multipath fading to extract a demodulation signal. Here, in order to execute JD accurately, in a receiving apparatus, it is necessary to recognize all spreading codes multiplexed into the received signal. However, regarding multiplexed spreading codes, it is the only spreading codes allocated to a own station that a communication terminal apparatus correctly recognizes, and spreading codes allocated to the other station are not informed from a radio base station. Accordingly, it is necessary to accurately estimate the spreading codes allocated to the other station.
As a method for estimating spreading codes allocated to the other station to execute JD, the following method can be given. A shift amount of midamble codes used in a time slot (hereinafter referred to as “TS”) is detected and the number of spreading codes multiplexed in the TS is recognized from the detected shift amount. After despreading a data portion using all spreading codes, average power values (hereinafter referred to as “RAKE output average values) per one symbol are calculated from the RAKE combining result, and RAKE output average values corresponding to the number of recognized spreading codes are selected. These selected spreading codes are determined as being multiplexed in the received signal.
Hereinafter, an explanation will be given of the generation of midamble codes using FIG. 1. Regarding the generation of midamble codes, first of all, it is assumed that two basic codes each having 456 chips are continuously prepared. It is assumed that the midamble code is formed of 512 chips and the basic code, which is shifted by one chip from the right end of continuous two basic codes and corresponds to 512 chips, is generated as a midamble code #1 as illustrated in FIG. 1. Next, it is assumed that the basic code, which is shifted left to the midamble code #1 by 57 and corresponds to 512 chips, is generated as a midamble code #2. Similarly, the basic code is shifted left by 57 chips as ensuring 512 chips to generate a midamble code #3 to a midamble code #8.
A midamble code #9 is a basic code, which is shifted left to the midamble code #1 by 29 chips and corresponds to 512 chips. Similar to the generation of the midambles #2 to #8, the basic code is shifted left by 57 chips as ensuring 512 chips to generate a midamble code #10 to a midamble code #15. Moreover, a midamble code #16 is a code, which is cyclically shifted right to the midamble code #1 by 28 chips and corresponds to 512 chips.
In this way, since the basic code is shifted by a predetermined amount as ensuring 512 chips to generate each midamble code, the midamble code x is hereinafter referred to as midamble shift with a shift amount x or midamble shift x (x:1≦x≦16).
In addition, the number of midamble shifts generated from the basic code is Kcell, and any one of values 16, 8, 4 is given. When Kcell=16, midamble shifts 1 to 16 are used, when Kcell=8, midamble shifts 1 to 8 are used, and when Kcell=4, midamble shifts 1, 3, 5, 7 are used, respectively.
In 3GPP specification TS25.221 V4.4.0 (at the time of using a common midamble where a midamble shift and the number of spreading codes are made to correspond to each other), the number of types of spreading codes allocatable to the respective communication terminals is 16, and a corresponding relationship with the number of spreading codes (the number of spreading codes multiplexed into the same TS) is established. More specifically, this can be explained using FIGS. 2 to 4.
FIG. 2 is a view illustrating a relationship between the midamble shifts and the number of spreading codes when the number of types of common midambles is 16 (Kcell=16). Moreover, FIG. 3 is a view illustrating a relationship between the midamble shifts and the number of spreading codes when the number of types of common midambles is 8 (Kcell=8). FIG. 4 is a view illustrating a relationship between the midamble shifts and the number of spreading codes when the number of types of common midambles is 4 (Kcell=4). In FIGS. 2 to 4, m1 to m16 indicate the shift amount of midamble, and 1 code to 16 codes indicate the total number of spreading codes multiplexed into the received signal in one slot. In the table, “0” indicates that no corresponding relationship between the midamble and the number of spreading codes is established, and “1” indicates that a corresponding relationship between the midamble shift and the number of spreading codes is established. As illustrated in FIGS. 2 to 4, when Kcell=16, one type of spreading codes corresponds to one midamble shift, when Kcell =8, two types of spreading codes correspond to one midamble shift, and when Kcell=4, four types of spreading codes correspond to one midamble shift. A base station inserts the midamble shift, which corresponds to the number of multiplexing spreading codes, into transmission data to transmit to all communication terminal apparatuses in communication. The midamble shift used in this way is hereinafter referred to as common midamble.
Transmission power of the midamble will be next explained using FIG. 5. FIG. 5 is a conceptual view illustrating transmission power and a slot configuration. In a base station apparatus, a midamble portion is inserted between the data portions in one slot and transmitted to the communication terminal apparatus. Regarding the transmission power of the midamble, the same transmission power as the data portion is set as described in 3GPP specification TS25.221 V4.4.0.
FIG. 6 is a block diagram illustration a configuration of a conventional communication terminal apparatus. In the figure, a radio receiving section 12 receives a signal sent from the base station via an antenna 11 and executes a predetermined reception processing (downconvert, A/D conversion, and the like), and outputs it to a delay profile generating section 13 and a despreading and RAKE combining section 19.
The delay profile generating section 13 executes correlation computation to the midamble portion of the received signal using Kcell midamble replica codes to generate Kcell delay profiles, and outputs them to a maximum value detecting section 14 and a path selecting section 16.
The maximum value detecting section 14 detects the respective maximum values based on the delay profiles corresponding to the respective replica codes output from the delay profile generating section 13, and outputs detected Kcell maximum values to a midamble shift determining section 15.
The midamble shift determining section 15 detects a maximum value of Kcell maximum values detected by the maximum value detecting section 14. In other words, a maximum correlation value (hereinafter referred to as “total correlation maximum value”) of total correlation values is detected, and the midamble replica code (midamble shift) where the total correlation maximum value is obtained was determined as being used as a common midamble. The determined midamble shift is output to a path selecting section 16 and a spreading code number candidate obtaining section 19.
Hereinafter, a state of a midamble shift determination is illustrated in FIG. 7. FIG. 7 shows a case of Kcell=4, and a vertical axis indicates a maximum correlation value of each midamble shift and a horizontal axis indicates a shift amount of the midamble shift. Maximum values of m1, m3, m5 and m7 used when Kcell=4 detected by the maximum value detecting section 14 are arranged as illustrated in FIG. 7 and m5 indicates a total correlation maximum value as comparison among these maximum values. Accordingly, m5 is determined as being used as a common midamble.
The path selecting section 16 reads the delay profiles of the midamble shifts determined by the midamble shift determining section 15 from the delay profile generating section 13, detects a peak from the read delay profile, selects a path, and outputs the path selection result to a despreading and RAKE combining section 17, and a JD operating section 21.
The despreading and RAKE combining section 17 performs despreading over a plurality of symbols of the data portion using all spreading codes according to the path selected by the path selecting section 16, RAKE combines the despread signal and outputs the RAKE combined signal to an average value calculating section 18. Moreover, the despreading and RAKE combining section 17 despreads an entirety of the data portion, RAKE combines the despread result, and outputs the RAKE combining result to a JD operating section 21.
The average value calculating section 18 calculates power average values per one symbol, namely, RAKE output average values, from the RAKE combining results over the plurality of symbols output from the despreading and RAKE combining section 17, and outputs them to an average value sorting section 20.
The spreading code number candidate obtaining section 19 holds a table (corresponding to FIGS. 2 to 4) where the midamble shifts and the number of spreading codes are made to correspond to each other, obtains candidates for the number of spreading codes corresponding to the midamble shifts output from the midamble shift determining section 15 from the table, and outputs the obtained candidates for the number of spreading codes to the average value sorting section 20.
The average value sorting section 20 selects RAKE output average values equivalent to the total number of spreading codes calculated by the average value calculating section 18 in descending order of level, and outputs the spreading codes equivalent to the selected RAKE output average values to the JD operating section 21.
The JD operating section 21 performs JD operation using the path selecting result output from the path selecting section 16, the RAKE combining result output from the despreading and RAKE combining section 17, and the spreading codes output from the average value sorting section 20, and outputs the operation result to a decoding section (not shown).
As mentioned above, the conventional communication terminal apparatus selects RAKE output average values equivalent to the number of spreading codes corresponding to the midamble shifts determined by midamble shift determination in descending order of level, and estimates the spreading codes corresponding to the selected RAKE output average values as spreading codes multiplexed into the received signal.
However, in the cases excepting for Kcell=16 where no one-to-one correspondence between the midamble shift and the number of spreading codes is established, the number of candidates for the number of spreading codes corresponding to one midamble shift is multiple, so that the number of spreading codes cannot be determined correctly and the spreading code multiplexed into the received signal cannot be estimated. For example, in the case of Kcell=8, the number of candidates for the number of spreading codes to one midamble shift is two, and it is not unclear which spreading code number should be used to select the number of spreading codes from the RAKE output average values.